Python
Python is nice for building on a large selection of free libraries and quickly prototyping new ideas. Here are some of mine. Projects Click here for the list, it got too long Resources A general collection of useful websites for reference or inspiration (or both): References *Software Carpentry : Programming best practices and how to aimed at researchers **NumPy community : NumPy / SciPy / Matplotlib / IPython / SymPy / Cython / pandas / PyTables / scikit-image / scikit-learn / scikit-statsmodels / spyder / theano *Python 2.7 Standard Library : Everything you need to know about what's built into Python **Built-in exception hierarchy **Format Specification Mini-Language **Python Data Model : specified built-in attributes of objects (including functions) *Python Module of the Week : Short examples of lesser known but helpful modules of the standard library *http://nullege.com/ : Search engine for Python code examples *Free books on a variety of topics **Think Complexity : "complexity science, data structures and algorithms, intermediate programming in Python, and the philosophy of science" **Programming Computer Vision and reader example **Invent with Python has books on pygame, learning to program, and cryptography **The Python Game Book has more help/examples for pygame **Problem Solving with Algorithms and Data Structures *Non-free books about Python **Violent Python: A Cookbook for Hackers, Forensic Analysts, Penetration Testers and Security Engineers *http://pyvideo.org/ : Hosts videos from PyCon and other presentations. Lots of cool things *https://speakerdeck.com/pyconslides : Hosts presented slides from PyCon **SciPy posters and presentations Coding Topics *Design practices **PEP 8 -- Style Guide for Python Code **PEP 257 -- Docstring Conventions **Lessons from Classic Industrial Design for a Digital World slides *Documentation : PyCon video on the benefits and types of documentation *Exception handling : PyCon video on how exception handling can be easy and make life easier *Advanced Python and slides : map, reduce, iterators, metaclasses, etc... **Iterators and Generators : PyCon video on how generators can be easy and make life easier **Decorators 2.X : and slides. Also make life easier, see functools and contextlib from standard library **Metaprogramming 3.X : changes in Decorators, Class decorators, Descriptors, and Metaclasses **Lambda functions *Automated Testing : PyCon video on how to automate tests for better code **pytest : Can find (with a "test_" prefix) and run test routines **coverage.py : Measure statement/branch coverage of tests **lettuce : Use English language to define system tests *Harnessing multiple cores using multiprocessing library (vs threading), slides, Python uses a global interpreter lock (more) *Profiling : is good, check pyvideo for reference *Checkpointing (using the DMTCP protocol) and reversible debugging, can be used with pdb or any debugger *IPython Notebook : Consider using for ad-hoc analysis or if results need to be shared or repeatable (website, examples, used for IBM Watson, SciPy In-depth 1 2 3 tutorial, Help chat, author blog) **Custom display logic and Configuration notebooks **Include HTML5 videos in markdown cells: " /> **Customize your IPython notebook with CSS **More clever format customization **Dynamic visualization, notebooks, slides *Spyder : Open source IDE integrated with the NumPy / scientific Python stack *Graph/Network Analysis (technical starts at 12 min in) : slides, project, uses postgres, numpy, scipy, igraph, scikit-learn, tweepy, flask Libraries *Some need help: pandas, matplotlib, numpy *Python Module of the Week : Short examples of lesser known but helpful modules of the standard library **gc: Memory allocation / cleanup, slides *pdb : basics of using Python's built-in debugger *Cookiecutter : Simplify copying / tweaking open source projects *virtualenv : Set up virtual environments for running projects, overview, wrapper for multiple projects *Natural Language Toolkit and textbook : Package containing quite a few word sources and "text processing libraries for classification, tokenization, stemming, tagging, parsing, and semantic reasoning." **Finding Parties Named in U.S. Law using Python and NLTK **TextBlob extension for part-of-speech tagging, noun phrase extraction, sentiment analysis, etc... *SymPy : Symbolic Processing (think Wolfram Alpha) with tutorials, search engine, and live console *Matplotlib : plotting package based on MATLAB format (documentation, example plots, roadmap) **Generate eye diagram using Bresenham's line algorithm **imshow used for heatmap-type plots (examples) *Numba : converts python functions to compiled libraries for fast, efficient number crunching. Used by matplotlib. (home, github, example 1/2 , 2/2, notebook) *Pydata (numpy, pandas, and pytables) : Intro, presentation, notebook, pydata github, **HDF5 : A Hierarchical Data Format, used to handle large amounts of data (presentation material, saving field pointers, compression) *Probabilistic Programming : description, why it matters, community, Python wrapper around Microsoft Infer.NET library *Logic programming in Python : Introduction **Matrix Expressions and BLAS/LAPACK : Used to select optimal function to for given data and relations *Fuzzy logic : notebook, scikit-fuzzy home *MyHDL (HDL simulation / VHDL generation) : project, slides, example project, fixed point signals, user projects and references *Python 2.7 back-port of enumeration support from Python 3.4 *Virtual Observatory: project, public access, Aida download Machine Learning *Trends in Machine Learning (SciPy 2013) *Flow chart for which scikit-learn algorithm to use *List of available data sets *Kaggle : open competitions to solve data analysis problems, some with prizes *AIMA Code : Python code used in Peter Norvig's textbook AI: A Modern Approach *scikit-learn - SciKit package for machine learning (presentation, slides, iPython notebook, code, examples) **intro and use for tracking phishers *Programming Collective Intelligence - textbook and code *Machine Learning for Hackers - textbook and code *Coursera Machine Learning - Stanford course that dives into machine learning math *Probabilistic Programming and Bayesian Methods for Hackers : Textbook / IPython notebook *Data agnostic approach : Python makes it easier to find features (vs knowing features) *Coding Theory and Feature Learning : Sparse coding, nueral networks (Restricted Boltzmann Machines, Autoencoders), feature learning, Deep Learning AI, PyBrain, author work in PyPi, GitHub Web Apps *How to use HTML meta tags *Effective Assessment in a Digital Age: A guide to technology-enhanced assessment and feedback *Web Apps : minimize latency using celery for caching, global dump (see django's database conversion) vs. HTTP pipelining vs. websockets (with tornado or autobahn for wamp support) *Exploits and mitigating [part 1] [part 2] of the Open Web Application Security Project's 10 web app vulnerabilities, slides, test app *Django : web-framework for quickly developing websites and presenting information from Python.a **Tutorial, Class-based views *djangoappengine : Google App Engine back-ends for django-nonrel to use the Django framework with non-relational databases, such as what Google provides *Google App Engine : free web app hosting, can run pure django projects, types and property classes, uploading your app, skipping files on upload *Sending e-mail with Google App Engine webapp2